package com.mibus.mibusmobile;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class MySQLiteHelperConductor extends SQLiteOpenHelper {

    // Database Version
    private static final int DATABASE_VERSION = 1;
    // Database Name
    private static final String DATABASE_NAME       = "LastLogin";
    private static final String KEY_ID              = "_id";
    private static final String TABLE_LOGIN         = "login";
    private static final String KEY_USUARIO         = "usuario";
    private static final String KEY_CLAVE           = "clave";
    private static final String KEY_ID_CONDUCTOR    = "id_conductor";
    private static final String KEY_ID_BUS          = "id_bus";
    private static final String KEY_FECHA           = "fecha";
    private static final String KEY_HASH            = "hash";
    private static final String KEY_UPDATE_TIME     = "update_time";
    private static final String[] COLUMNS = {
                                                KEY_ID,
                                                KEY_USUARIO,
                                                KEY_CLAVE,
                                                KEY_ID_CONDUCTOR,
                                                KEY_ID_BUS,
                                                KEY_FECHA,
                                                KEY_HASH,
                                                KEY_UPDATE_TIME
                                            };


    public MySQLiteHelperConductor(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db){
        Log.i(this.getClass().toString(), "Creando base de datos");

        db.execSQL( "CREATE TABLE login(" +
                    " _id INTEGER PRIMARY KEY," +
                    " usuario TEXT, " +
                    " clave TEXT, " +
                    " id_conductor TEXT," +
                    " id_bus TEXT," +
                    " fecha TEXT," +
                    " hash TEXT," +
                    " update_time TEXT)"
                    );

        Log.i(this.getClass().toString(), "Tabla login creada");
        Log.i(this.getClass().toString(), "Base de datos creada");
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }

    public void addInfo(String usuario,String clave, String id_conductor, String id_bus, String fecha, String hash, String update_time){
        Log.i(this.getClass().toString(), "agregando informaicon");

        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues valores = new ContentValues();

        valores.put(KEY_ID, 1 );
        valores.put(KEY_USUARIO, usuario);
        valores.put(KEY_CLAVE, clave);
        valores.put(KEY_ID_CONDUCTOR, id_conductor);
        valores.put(KEY_ID_BUS, id_bus);
        valores.put(KEY_FECHA, fecha);
        valores.put(KEY_HASH, hash);
        valores.put(KEY_UPDATE_TIME, update_time);


        db.insert("login", null, valores);
        db.close();
        Log.i(this.getClass().toString(), "Informacion Agregada");
    }

    public ContentValues getInfo(int id){
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor =
                db.query(TABLE_LOGIN, // a. table
                        COLUMNS, // b. column names
                        KEY_ID+" = ?", // c. selections
                        new String[] { String.valueOf(id) }, // d. selections args
                        null, // e. group by
                        null, // f. having
                        null, // g. order by
                        null); // h. limit

        ContentValues resultado =  new ContentValues();
        try{
            cursor.moveToFirst();
            for (int i=0;i<COLUMNS.length;i++){
                resultado.put(COLUMNS[i],cursor.getString(i));
            }
            Log.i(this.getClass().toString(), "Informacion obtenida");
        }catch (Exception e){
             resultado.put("_id","no hay nada");
        }
        return resultado;
    }

    public int updateInfo(String usuario,String clave, String id_conductor, String id_bus, String fecha, String hash, String update_time, int id) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues valores = new ContentValues();

        valores.put(KEY_ID, 1 );
        valores.put(KEY_USUARIO, usuario);
        valores.put(KEY_CLAVE, clave);
        valores.put(KEY_ID_CONDUCTOR, id_conductor);
        valores.put(KEY_ID_BUS, id_bus);
        valores.put(KEY_FECHA, fecha);
        valores.put(KEY_HASH, hash);
        valores.put(KEY_UPDATE_TIME, update_time);

        int i = db.update(TABLE_LOGIN, valores, KEY_ID+" = ?", new String[] { String.valueOf(id) });

        db.close();
        Log.i(this.getClass().toString(), "Informacion actualizada");
        return i;
    }

    public void deleteInfo(int id) {
        SQLiteDatabase db = this.getWritableDatabase();

        db.delete(TABLE_LOGIN, KEY_ID+" = ?", new String[] { String.valueOf(id) });
        db.close();
        Log.i(this.getClass().toString(), "Informacion eliminada");
    }


}